package request

// IDRequest ID请求
type IDRequest struct {
	ID uint `json:"id" binding:"required"` // ID
}

// IDBatchRequest ID批量请求
type IDBatchRequest struct {
	IDs []uint `json:"ids" binding:"required"` // ID列表
}

// PageRequest 分页请求
type PageRequest struct {
	Page     int `form:"page" json:"page"`           // 页码
	PageSize int `form:"page_size" json:"page_size"` // 每页数量
}

// GetPage 获取页码
func (r *PageRequest) GetPage() int {
	if r.Page <= 0 {
		r.Page = 1
	}
	return r.Page
}

// GetPageSize 获取每页数量
func (r *PageRequest) GetPageSize() int {
	if r.PageSize <= 0 {
		r.PageSize = 10
	} else if r.PageSize > 100 {
		r.PageSize = 100
	}
	return r.PageSize
}

// GetOffset 获取偏移量
func (r *PageRequest) GetOffset() int {
	return (r.GetPage() - 1) * r.GetPageSize()
}

// GetLimit 获取限制数量
func (r *PageRequest) GetLimit() int {
	return r.GetPageSize()
}
